﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WorkflowFramework
{
    public abstract class FlowStepBase : IFlowStep
    {
        public abstract string StepName { get; }

        public virtual Task InitializeAsync() => Task.CompletedTask;
        public virtual Task PreProcessAsync() => Task.CompletedTask;
        public abstract Task<FlowStepResult> ExecuteAsync();
        public virtual Task PostProcessAsync() => Task.CompletedTask;
    }
}
